perm filename R1302.ART[ESS,JMC] blob
sn#005485 filedate 1972-02-06 generic text, type T, neo UTF8
00100 ROBOTS
00200
00300
00400 by John McCarthy,
00500
00600 [John McCarthy is Professor of Computer Science and Director of the
00700 Artificial Intelligence Laboratory, Stanford University, Stanford,
00800 California]
00900
01000 The robot or artificial human has been portrayed in
01100 literature especially in science fiction, for several hundred years.
01200 Only in the last twenty-five years, however, has there been
01300 scientific work directly aimed at making a machine that can perceive
01400 objects and events in the physical world like a human and which can
01500 behave intelligently on the basis of what it perceives.
01600
01700 The scientific event that made research on robotics and
01800 artificial intelligence possible was the development of the stored
01900 program digital computer. While the idea of the stored program
02000 computer goes back to the English scientist Charles Babbage 100 years
02100 ago, the first practical computers were put into operation in 1949.
02200 They were too slow, had too little memory, were too unreliable, and
02300 too hard to program for serious work in artificial intelligence, but
02400 their very existence and the assurance that these defects would be
02500 relieved set people's thoughts going in new directions.
02600
02700 First of all, it became clear that the hard problem would not
02800 be the physical construction of robots or even the physical
02900 construction of the computer that would serve as the robot's brain.
03000 Instead, the hard problem would be inventing the procedures (called
03100 programs) that the machine would have to carry out in order to behave
03200 intelligently in the wide variety of circumstances that humans
03300 encounter and handle routinely. Here are some of the problems that
03400 have to be solved:
03500
03600 WHAT ARE THE PROBLEMS OF ROBOTICS?
03700
03800 1. What are the facts that a human knows and a robot must
03900 know about a situation in order to decide what to do? How can these
04000 facts be represented in the memory of a computer?
04100
04200 2. What are the general facts about the world that enable a
04300 human to determine in a particular situation what are the likely
04400 results of the different actions he might undertake?
04500
04600 3. What are the purposes that humans have or that we might
04700 wish a robot to have, and how can these be represented in a computer?
04800 This includes restrictions we would like robots to observe.
04900
05000 4. How should the machine decide what to do on the basis of
05100 the information it has about the particular situation, its
05200 information about the world in general, its information about its own
05300 capabilities including its ability to get further information, and
05400 its information about its own purposes?
05500
05600 5. How can we be sure that intelligent robots, once we get
05700 them, will behave nicely, and won't get notions of conquering the
05800 world either for themselves or for people that might like to do that?
05900
06000 6. How is the robot to obtain information about the world
06100 from the senses with which we equip it? It is easy to connect a
06200 television camera to a computer so that a picture comes in as an
06300 array of light intensity and color values, but it is very hard to
06400 program the computer to find the people in the picture and decide
06500 what they are doing.
06600
06700 None of the above problems has been solved, but a start has
06800 been made on all of them, and systems have been built that behave
06900 properly in very limited circumstances.
07000
07100
07200 WHAT HAS BEEN ACCOMPLISHED
07300
07400 When someone claims to have made a computer program that
07500 behaves intelligently, the first question someone else will ask is,
07600 "how smart is it compared to people". Therefore, one of the first
07700 tasks people tried to program is playing games, and the first game to
07800 be discussed was the game of chess.
07900
08000 One of the first efforts to program chess was made by the
08100 British scientist Alan Turing. He did this before he even had a
08200 computer to work with, by carefully writing down the rules he wanted
08300 the computer to follow, and then carrying out the rules by hand. His
08400 idea was to provide a rule for evaluating a position: so many points
08500 for each kind of piece posessed by each side, so many points for
08600 mobility of one's forces which he proposed to measure in terms of the
08700 number of legal moves, so many points for control of center squares
08800 which is important in chess, points for control of the squares near
08900 the kings, and points based on the structure formed by each side's
09000 pawns, and perhaps a few more criteria. The program would evaluate
09100 the number of points of each possible move and choose the move that
09200 had the most points. Turing knew that this program for choosing
09300 moves would not play expert chess, but he hoped it would play
09400 passsable beginner's chess. His non computer experiments led him to
09500 conclude that the program would do so, but we cannot be sure, since
09600 the program was not run on a computer, and hand simulations have
09700 since proved to err on the optimistic side. When someone carries out
09800 a set of rules for playing a game, it is very difficult for him to
09900 avoid applying some common sense of his own.
10000
10100 Since that time, a number of chess programs have been written
10200 that play fairly well. One of them, written by Richard Greenblatt of
10300 Massachusetts Institute of Technology won the class D trophy in a
10400 tournament with human players. This gave it a rating of class C. All
10500 these programs use extensions and elaborations of the program
10600 proposed by Turing. In order to understand some of the ideas behind
10700 these improvements, let us consider a diagram of the possible moves
10800 available to the two players. This diagram is called the move tree
10900 of the game.
11000
11100
11200 Figure 1.
11300
11400 In the initial position, we show two possible moves by the
11500 program. These may not be all the moves that are available - just
11600 those that some process we have not yet specified considers worthy of
11700 serious consideration. The first of these moves leads to a position
11800 in which the program's opponent has two moves, and the second leads
11900 to a position with three moves. As shown in the diagram each of the
12000 first two moves considered for the opponent leads to a position in
12100 which there are three moves for the program. Beyond the positions
12200 shown, there may be additional moves for the machine and its
12300 opponent, but let us suppose that the investigation is not carried
12400 further because the program has some criteria that tell it that these
12500 end positions are sufficiently static so that they can be evaluated
12600 without further search. Attached to the endpoints on the diagrams
12700 are the values given to the corresponding positions. These numbers
12800 are from the point of view of the program; large numbers are
12900 favorable for it. If we assume that each side would make the move
13000 that is best for it in each of the positions just before the then of
13100 the tree, then we can assign values to these positions as shown in
13200 brackets. Continuing this process gives values to all the positions.
13300
13400 All present chess programs use these values, but the early
13500 programs looked at all the positions in order to get them. However,
13600 if the program looks at positions from the top down in the diagram,
13700 it is clear that the positions marked in red need never be examined.
13800 Thus, after the positions with values 8,1,6,3,and 9 have been
13900 examined, it is clear that the minimizing player will not make the
14000 move to [9] since he can be sure of keeping the score to 8 by moving
14100 to [8] and will allow a score of at least 9 by moving to [9]. To
14200 look at 5 at this point is as though a chess player, after
14300 determining that a certain move wins a pawn, discovers that another
14400 move allows the opponent to capture one of his rooks without any
14500 compensation, then examines other moves of the opponent. The move
14600 that allows the rook capture is already refuted; it is fruitless to
14700 look at what else the opponent might do, since it does not influence
14800 our choice of move.
14900
15000 Clearly, the alpha-beta heuristic saves looking at some
15100 positions, but we emphasize the following points:
15200
15300 1. If moves are looked at in the right order (it is best to
15400 look at the best moves first), the number of positions looked at with
15500 alpha-beta is about the square root of the number looked at
15600 otherwise. Thus, analysis involving 10,000 positions with alpha-beta
15700 may require looking at 100,000,000 without it. The difference will
15800 allow a slow computer to beat a fast one or even allow a human to
15900 beat a computer.
16000
16100 2. Alpha-beta is used without explicit thought by human game
16200 players, but was not noticed by the first authors of game-playing
16300 programs. This suggests that many of the algorithms required to make
16400 machines behave intelligently can be found by observing human
16500 behavior carefully, but this is more difficult than it might seem.
16600
16700 3. One of the main methods of artificial intelligence is to
16800 make a program that behaves the way we think humans do or at least
16900 ought to. If the program is not as successful as humans, examination
17000 of its mistakes will sometimes turn up an aspect of human behavior we
17100 have missed, because we normally take it for granted.
17200
17300 Here are some more aspects of human game-playing behavior,
17400 some of which have been incorporated into game-playing programs, but
17500 others still give us difficulties.
17600
17700 1. We can often consider two moves occurring in two different
17800 positions as "the same move". For example, they may both involve
17900 moving the same piece from a given square to a given other square.
18000 In general, the "same move" will have different effects in different
18100 positions, but often the effects are the same or at least some of the
18200 important properties are the same. Humans are rather good at noticing
18300 this so as to not repeat computations, but present computer programs
18400 do it to a very limited extent.
18500
18600 2.